﻿#! /usr/bin/python
# -*- coding: utf-8 -*-
'''
 u2palm.py

 Конвертор файлов формата HTML, FB2, OPF в кодировку Palm

 Автор: Егор Чемисов
 Email: yegor.chemisov@gmail.com
 http://ervo.googlecode.com

 $Id: eoru.py 103 2011-04-23 17:49:50Z yegor.chemisov $

'''
import os

def unicode2palm(in_dir = 'mobi/', out_dir = 'palm/'):
	"Функция конвертирует файлы форматов HTML, FB2, OPF в кодировку Palm"

	cx = {'ĉ':'cx', 'Ĉ':'Cx', 'ĝ':'gx', 'Ĝ':'Gx', 'ĥ':'hx', 'Ĥ':'Hx',
          'ĵ':'jx', 'Ĵ':'Jx', 'ŝ':'sx', 'Ŝ':'Sx', 'ŭ':'ux', 'Ŭ':'Ux',
          'utf-8':'iso-8859-1', 'UTF-8':'iso-8859-1',
          '—':'--', '„':'"', '“':'&laquo;', '”':'&raquo;',
          '́':'', 'ī':'i', '◊':'@', '«':'"', '»':'"', '\ufeff':'`',
          '¹':' <sup><small>1</small></sup>',
          '²':' <sup><small>2</small></sup>',
          '³':' <sup><small>3</small></sup>',
          }
    #os.chdir(in_dir)
	print ("In:", in_dir, sep='\t')
	print ("Out:", out_dir, sep='\t')

	if not os.access(out_dir, os.F_OK): os.mkdir(out_dir)

	for fn in os.listdir (in_dir):
		if fn[0] == '.' or os.path.isdir(in_dir + fn): continue
		if fn in ('u2palm.py'): continue
		if not (fn[-4:] in ("html", ".htm", ".fb2", ".opf")) : continue
		print (in_dir + fn + "\t=>", end='\t')
		s = open(in_dir + fn, 'r', encoding='utf8').read()
		for c in cx: s = s.replace(c, cx[c])
		open(out_dir + fn, 'w', encoding='cp1251').write(s)
		print (out_dir + fn)
	return None

if __name__ == '__main__':
    unicode2palm()

